import { defineConfig } from 'tsup'

export default defineConfig({
  entry: ['src/index.ts'],
  format: ['cjs'], // 使用 CommonJS 格式，更适合 Node.js 服务器
  target: 'node18',
  platform: 'node',
  dts: false, // 不需要生成类型定义文件，因为这是服务端应用
  splitting: false,
  sourcemap: true,
  clean: true,
  minify: false, // 开发时保持可读性
  treeshake: true,
  outDir: 'dist',
  external: [
    // 排除 node_modules 中的包，让它们在运行时解析
    '@prisma/client',
    'prisma'
  ],
  noExternal: [
    // 确保这些包被打包进去
  ],
  esbuildOptions(options: any) {
    // 保持路径别名解析
    options.alias = {
      '@': './src'
    }
    // 禁用 eval 警告
    options.define = {
      ...options.define,
      'process.env.NODE_ENV': '"production"'
    }
  },
  onSuccess: async () => {
    console.log('✅ Build completed successfully!')
  }
})

